Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Liveness for PTX and Vulkan #541

Merged
merged 33 commits into from
Oct 24, 2023

Conversation

tonghaining
Copy link
Contributor

This PR adds liveness features and tests for PTX and Vulkan models

@hernanponcedeleon
Copy link
Owner

The new test from Figures 9 and 11 are wrong. In the paper, they have this + and - indicating that some lines were added or removed. These are the correct versions for Figure 11 (please also create two tests for Figure 9 with the corresponding lines removed, also check the init value of m)

PTX SL-future+plus
"Adapted from Figure 11 in
GPU Concurrency: Weak Behaviours and Programming Assumptions
https://dl.acm.org/doi/pdf/10.1145/2694344.2694391"
{
x=0;
m=1;
P0:r0=0;
P0:r1=0;
P1:r2=0;
}
 P0@cta 0,gpu 0                 | P1@cta 1,gpu 0                   ;
 ld.weak r0, x                  | atom.relaxed.cta.cas r2, m, 0, 1 ;
 fence.sc.gpu                   | bne r2, 0, LC00                  ;
 atom.relaxed.cta.exch r1, m, 0 | fence.sc.gpu                     ;
                                | st.weak x, 1                     ;
                                | LC00:                            ;
exists
 (P0:r0 == 1 /\ P1:r2 == 0)

and

PTX SL-future-minus
"Adapted from Figure 11 in
GPU Concurrency: Weak Behaviours and Programming Assumptions
https://dl.acm.org/doi/pdf/10.1145/2694344.2694391"
{
x=0;
m=1;
P0:r0=0;
P0:r1=0;
P1:r2=0;
}
 P0@cta 0,gpu 0 | P1@cta 1,gpu 0                   ;
 ld.weak r0, x  | atom.relaxed.cta.cas r2, m, 0, 1 ;
 st.weak m, 0   | bne r2, 0, LC00                  ;
 fence.sc.gpu   | st.weak x, 1                     ;
                | LC00:                            ;
exists
 (P0:r0 == 1 /\ P1:r2 == 0)

Signed-off-by: Hernan Ponce de Leon <[email protected]>
@hernanponcedeleon
Copy link
Owner

@tonghaining can you add all CADP test (i.e., not only the ones that we run for liveness) to the Vulkan-CK-expected so be sure that all tests have the correct syntax?

@tonghaining
Copy link
Contributor Author

@tonghaining can you add all CADP test (i.e., not only the ones that we run for liveness) to the Vulkan-CK-expected so be sure that all tests have the correct syntax?

It can't check all the CADP tests because those with exchange will return 'UNKNOWN'

Signed-off-by: Hernan Ponce de Leon <[email protected]>
Signed-off-by: Hernan Ponce de Leon <[email protected]>
@hernanponcedeleon hernanponcedeleon merged commit 01287ad into hernanponcedeleon:development Oct 24, 2023
1 check passed
@tonghaining tonghaining deleted the liveness branch January 5, 2024 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants